import axios from "axios";
import {ElMessage} from 'element-plus'
const WEVURL = 'https://wz.mala.cn/';
// const WEVURL = 'https://www.wz1.com/';
const service = axios.create({
    baseURL: WEVURL,  //访问后端接口，例如：192.168.1.131:8090/
    timeout: 3000,
})
// 请求拦截器
service.interceptors.request.use(
    async (config) => { // 使用 async 关键字
        const res = await chrome.storage.local.get(['wzData']); // 等待异步操作完成
        const user = res.wzData;
        if (user && user.userToken) { // 增加判空，避免报错
            config.url  = config.url + '?token=' + encodeURIComponent(user.userToken);
        }
        config.header = {
            ...config.header,
            'Content-Type': 'application/json;charset=utf-8'
        };
        return config; // 此时已确保 token 已设置（如果存在）
    },
    (error) => {
        // 对请求错误做些什么
        return Promise.reject(error);
    }
);
// 相应拦截器
service.interceptors.response.use(
    (response) => {
        // 对响应数据做些什么，例如处理错误信息等
        const res = response.data
        if (res.code !== 200) {
            ElMessage.error({
                message: res.message,
                type: 'error',
            })
        }
        return response;
    },
    (error) => {
        if (error && error.response) {
            switch (error.response.status) {
                case 400:
                    error.message = '400:请求错误'
                    break
                case 403:
                    error.message = '403:拒绝访问'
                    break
                case 404:
                    error.message = `404:请求地址出错: ${error.response.config.url}`
                    break
                case 408:
                    error.message = '408:请求超时'
                    break
                case 500:
                    error.message = '500:服务器内部错误，请联系管理员'
                    break
                case 501:
                    error.message = '501:服务未实现'
                    break
                case 502:
                    error.message = '502:网关错误'
                    break
                case 503:
                    error.message = '503:服务不可用'
                    break
                case 504:
                    error.message = '504:网关超时'
                    break
                case 505:
                    error.message = '505:HTTP版本不受支持'
                    break
                default:
            }
        }
        ElMessage({
            message: error.message,
            type: 'error',
            duration: 3 * 1000,
        })
        console.error(error);

        // 对响应错误做些什么
        return Promise.reject(error);
    }
);

export default service
